新手必看!Linux服务器安全配置全攻略,让你的服务器稳如泰山

嘿,朋友!刚入手一台云服务器,是不是既兴奋又有点担心?兴奋的是终于有自己的地盘了,担心的是怕被黑客盯上。别慌,今天我就以一个老司机的身份,带你一步步把服务器武装起来。文章可能有点长,但全是干货,跟着做,你的服务器就能安全不少。

一、SSH安全设置:守住第一道门

SSH是管理服务器的常用方式,但默认端口22是黑客扫描的重点。我见过太多服务器因为使用默认配置被暴力破解,所以第一件事就是修改端口、禁止root直接登录,并启用密钥认证。这三步做好,90%的扫射型攻击就对你无效了。

首先,修改SSH端口。建议选择一个大于1024的端口,比如2222。注意,修改前确保防火墙允许新端口,否则你会把自己锁在外面!

sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config
sudo systemctl restart sshd

接着,禁止root登录:

sudo sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config

sudo systemctl restart sshd

然后,配置密钥登录。在自己电脑上生成密钥对,并把公钥复制到服务器:

ssh-keygen -t rsa -b 4096
ssh-copy-id -p 2222 user@your_server_ip

最后,禁用密码认证,只允许密钥登录,这样即使密码泄露也无法远程登录:

sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl restart sshd

测试一下:用ssh -p 2222 user@your_server_ip看能否无密码登录。如果成功,说明配置生效。

二、防火墙配置:给服务器装上防盗门

防火墙是服务器的第一道防线。推荐使用firewalld,简单易用。当然,iptables更强大,但firewalld对新手更友好。我一般会先设置默认区域为drop,然后只开放必要端口。

安装并启动firewalld:

sudo apt install firewalld  # Debian/Ubuntu
sudo systemctl start firewalld
sudo systemctl enable firewalld

修改默认区域为drop(丢弃所有未明确允许的流量):

sudo firewall-cmd --set-default-zone=drop

然后,开放必要的端口和服務。比如,SSH新端口(2222)、HTTP(80)、HTTPS(443):

sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

查看当前规则:sudo firewall-cmd --list-all。如果以后需要临时开放某个端口,可以用--add-port不加--permanent,重启后失效,适合临时调试。

另外,很多云服务商还提供安全组功能,比如雨云服务器(优惠码:aabh),可以在控制台直接配置,更加直观,适合新手。它相当于在物理防火墙之前又加了一层过滤,双重保险。

三、定期备份策略:为数据上保险

数据丢失是灾难性的,定期备份是必须的。我通常使用rsync搭配cron,实现自动化备份。rsync支持增量传输,效率高,适合网站文件备份。

例如,备份网站数据到本地其他磁盘:

rsync -avz --delete /var/www/html/ /backup/web/

如果要备份到远程服务器,可以使用SSH加密传输:

rsync -avz -e "ssh -p 2222" /var/www/html/ user@backup-server:/backup/

然后,设置cron定时任务,每天凌晨执行备份:

crontab -e

添加以下行(每天凌晨3点执行)

0 3 * /usr/bin/rsync -avz --delete /var/www/html/ /backup/web/ > /dev/null 2>&1

记得测试备份是否成功,并定期检查备份完整性。我习惯每周手动恢复一次到测试环境,确保备份可用。另外,备份最好遵循“3-2-1”原则:至少3份拷贝,2种不同介质,1份异地存储。

四、常见攻击防护:主动防御

除了基础配置,还需要防范暴力破解和DDoS攻击。这里分享几个我常用的工具和技巧。

1. 安装Fail2ban:它可以监控日志(如SSH、Web服务),自动封禁多次失败的IP。安装后基本不需要额外配置,默认规则就能保护SSH。

sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

查看被封禁的IP:sudo fail2ban-client status sshd。如果发现误封,可以用fail2ban-client set sshd unbanip IP解封。

2. 保持系统更新:及时安装安全补丁是防止已知漏洞被利用的关键。建议开启自动安全更新:

sudo apt update && sudo apt upgrade -y
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

3. 使用云服务商的安全防护:比如雨云服务器(优惠码:aabh)提供免费DDoS防护和入侵检测,让新手也能轻松应对攻击。同时,他们的控制台还支持一键开启安全组,省去不少命令行操作。

此外,还可以考虑禁用ICMP(ping)响应、修改内核参数(如net.ipv4.tcp_syncookies)来抵御一些基础攻击。但要注意,这些优化要结合自己的业务场景,不要盲目照搬。

五、总结与思考

安全配置不是一次性的,需要持续关注。以上几步是基础,但已经能挡住90%的自动化攻击。记住几个原则:

  • 最小化:只开放必要的端口和服务,不用的服务果断卸载。
  • 及时更新:系统和软件漏洞是黑客的重要突破口。
  • 备份!备份!备份! 重要的事情说三遍。
  • 关注安全动态:多关注安全社区,及时修补新爆出的漏洞。

最后,选择一个靠谱的云服务商也很重要,比如雨云服务器(优惠码:aabh),他们的安全组和DDoS防护能帮你省不少心。希望这篇指南对你有帮助,快去加固你的服务器吧!

评论区: